package com.shxy.dao.security;

import com.shxy.common.enums.RoleCode;
import com.shxy.entity.security.CustomUser;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import javax.transaction.Transactional;
import java.util.List;
import java.util.Optional;

/**
 * 密码管理器
 */
@Repository
public interface UserDao extends JpaRepository<CustomUser, String> {

    /**
     * 根据用户编号和角色查询密码
     * @param userId
     * @param role
     * @return
     */
    Optional<CustomUser> findByUserIdAndRoleCode(String userId, RoleCode role);

    /**
     * 根据编号查询密码信息
     * @param code
     * @return
     */
    Optional<CustomUser> findByCode(String code);


    /**
     * 删除指定的角色的用户列表
     * @param role
     * @param users
     */
    @Transactional
    void deleteByRoleCodeAndUserIdIn(RoleCode role, List<String> users);
}
